# coding=utf-8
def a(func):
    def _inner1(*argus,**kwargs):
        print 'run a'
        return func(*argus,**kwargs)
    return _inner1
def b(func):
    def _inner2(*argus,**kwargs):
        print 'run b'
        return func(*argus,**kwargs)
    return _inner2
def c(func):
    @a
    def _inner3(*argus,**kwargs):
        print 'run c'
        return func(*argus,**kwargs)
    return _inner3
@a
@b
def f1(*argus,**kwargs):
    print 'run f1'
@c
def f2(*argus,**kwargs):
    print 'run f2'
print '-----------------------1'
f1()
print '-----------------------2'
f2()
print '-----------------------3'

